from pyecharts.charts import Bar
from pyecharts.globals import ThemeType
from pyecharts.options import TitleOpts, LabelOpts, InitOpts

from file_define import *
from data_define import Record

# 读取文件中的数据
tfr = TextFileReader('E:/project/Python/day05_面对对象/resources/2011年1月销售数据.txt')
jfr = JsonFileRead('E:/project/Python/day05_面对对象/resources/2011年2月销售数据JSON.txt')
jan_data: list[Record] = tfr.read_data()  # 一月分的数据
json_data: list[Record] = jfr.read_data()  # 二月份的数据
# 将两个文件的数据进行合并
all_data = jan_data + json_data
"""# 查看得到的数据的样式
for data in all_data:
    print(data)"""

data_dict = {}
# 遍历所有数据，然后求出每个月的销售额
for record in all_data:
    if record.date in data_dict.keys():
        # 如果record的日期已近在这个字典的key里面，就进行累加(最终得到每个月的总销售额)
        data_dict[record.date] += record.money
    else:
        # 如果当前日期没有记录在这个字典中，就新建一个字典，将数据存储到value中
        data_dict[record.date] = record.money

# 可视化图标开发
bar = Bar(init_opts=InitOpts(theme=ThemeType.LIGHT))
bar.add_xaxis(list(data_dict.keys()))  # 为x轴添加数据
bar.add_yaxis('销售额', list(data_dict.values()), label_opts=LabelOpts(is_show=False))  # 为y轴添加数据
bar.set_global_opts(
    title_opts=TitleOpts(title='每日销售额')
)

bar.render('每日销售柱状图.html')
